window.workspace = function(){
	var response  = <?#$respons?>;
	var form, store, grid, win;
	var sid = {'key':Ext.id()};
	var sm  = new Ext.grid.CheckboxSelectionModel();
	function addForm(data) {
		if(!win) {
			form = new Ext.form.FormPanel({
				frame		: true,
		        labelWidth	: 80,
		        labelAlign  : 'right',
		    	defaults	: {
		    		xtype	: 'textfield'
		    	},
		    	items		: [{
		            xtype		: 'hidden',
		            name		: 'id',
		            value		: 0
		    	},{
		            xtype		: 'textfield',
		            fieldLabel	: '配置名称',
		            name		: 'name',
		            width		: 260,
		            allowBlank	: false
		    	},{
		            xtype		: 'textfield',
		            fieldLabel	: '配置Key',
		            name		: 'key',
		            width		: 260,
		            regex		: /^[\w]{4,}$/,
		            regexText	: '用户名只能为数组字母以及下划线组成',
		            allowBlank	: false
		    	},{
		            xtype		: 'textarea',
		            fieldLabel	: '配置内容',
		            name		: 'value',
		            width		: 460,
		            allowBlank	: false
		    	},{
		            xtype		: 'textarea',
		            fieldLabel	: '备注信息',
		            name		: 'memo',
		            width		: 460,
		            height      : 32,
		            allowBlank	: false
		    	}]
			});
			win = new Ext.Window({
				iconCls	: 'icon-add',
				width	: 640,	
				items	: form,
				closeAction : 'hide',
				bbar 	: {
					xtype		: 'toolbar',
					buttonAlign	: 'right',
					items		: [{
						text	: '保存', 
						iconCls	: 'icon-save', 
						url		: '/admin/config/dosave.html', 
						handler	: function(){
						if(!form.getForm().isValid())
		        			return;
		        		form.getForm().submit({
			        		waitMsg 	: '数据提交处理中...',
							waitTitle 	: '信息提示',
			        		clientValidation: true,
			        		url			: '/admin/config/dosave.html',
				        	success		: function(form, action) {
				        		grid.store.reload();
				        		win.hide();
							},
							failure	: main.submitFailure
				    	});
					}}]
				}
			});
		}
		var id = Ext.isObject(data)? data.get('id'):0;
		win.setTitle((id > 0)? '编辑配置信息':'新增配置信息');
		win.setIconClass((id > 0)? 'icon-edit':'icon-add');
		win.show();
		(id > 0)? form.getForm().loadRecord(data):form.getForm().reset();
	}
	
	store = new Ext.data.JsonStore({
	    autoDestroy	: true,
	    url			: '/admin/config/dolist.html',
	    remoteSort	: true,
	    sortInfo	: {
	        field		: 'id',
	        direction	: 'DESC'
		},
		baseParams	: {
			start	: 0,
			limit	: main.pageSize
		},
		autoLoad		: true,
	    root			: 'dataset',
	 	totalProperty	: 'total',
	    fields			: ['id', 'key', 'name', 'value', 'memo', 'stime']
	});
	grid = {
		xtype		: 'grid',
		title		: response.title,
	    store		: store,
		region		: 'center', 
	    columns		: [
	        sm,
			{header: 'ID编号', width:70, sortable:true, dataIndex:'id'},
			{header: '配置名称', width:100, sortable:true, dataIndex:'name'},
			{header: '配置Key', width:80, sortable:true, dataIndex:'key'},
			{header: '配置内容', width:360, dataIndex:'value'},
			{header: '更新时间',width:100, sortable:true, dataIndex:'stime'}
		],
	    viewConfig	: {
	        forceFit	 : true,
	        scrollOffset : 0
	    },
	    listeners 	:{'rowdblclick':function(grid, index, e){
	    	var data = grid.store.getAt(index).copy();
	    	addForm(data);
	    },'destroy':function(){
	    	win && win.close();
	    },'render':function(obj){
			main.gridRender(obj, ['memo']);
    	}},
	    sm			: sm,
	    stripeRows	: true,
	    tbar		: [{
			text	: '刷新',
			iconCls	: 'icon-refresh',
			handler : function(){
				store.reload(); 
			}
		},'-',{
			text	: '新增配置',
			iconCls	: 'icon-add',
			url     : '/admin/config/dosave.html',
			handler : function(){
				addForm(0);
			}
		},'-',{
			text	: '删除配置',
			iconCls	: 'icon-delete',
			url     : '/admin/config/doremove.html',
			handler : function() {
				var rcs = grid.sm.getSelections();
				if(Ext.isEmpty(rcs)) {
					Ext.Msg.alert('信息提示', '请选择要操作的记录');
					return;
				}
				var ids= [];
				Ext.each(rcs, function(item){
					ids.push(item.get('id'));
				});
				Ext.Msg.confirm('信息提示','您确定要删除吗?删除之后将无法恢复...',function(btn){
					if(btn=="yes") {
						Ext.Ajax.request({
							url		: '/admin/config/doremove.html',
							params	: {'ids':ids.join(',')},
							success : function(resp, req){
								var data = Ext.decode(resp.responseText);
								if(data.code == 0) {
									store.reload(); 
								} else {
									Ext.Msg.alert('信息提示', data.msg);
								}
							}
						});
					}
				});
			}
		},'-','配置Key:',{
			xtype       : 'textfield',
			id   		: sid.key,
			width	    : 80
		},{
			text			: '检索',
			iconCls			: 'icon-search',
			handler: function() {
				store.baseParams.key= Ext.getCmp(sid.key).getValue();
				store.reload(); 
			}
		}],
		bbar		: new Ext.PagingToolbar({
			pageSize	: main.pageSize,
			store		: store,
			displayInfo	: true
		})
	};
	return grid;
}();